package cn.wolfcode.luowowo.common.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author 名字
 * @company 公司
 * @create 2019-09-26 10:57
 */
public abstract class RegexUtil {

    /**
     * 正则匹配图片,匹配第一张图片,包括不匹配第一张图片
     *
     * @param htmlStr
     * @return
     */
    public static String getImgStr(String htmlStr) {
        String img = "";
        Pattern p_image;
        Matcher m_image;
        //     String regEx_img = "<img.*src=(.*?)[^>]*?>"; //图片链接地址
        String regEx_img = "<img.*src\\s*=\\s*(.*?)[^>]*?>";
        p_image = Pattern.compile
                (regEx_img, Pattern.CASE_INSENSITIVE);
        m_image = p_image.matcher(htmlStr);
        while (m_image.find()) {
            // 得到<img />数据
            img = m_image.group();

            // 匹配<img>中的src数据
            Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);
            while (m.find()) {
//                return m.group(0);
                return "<img " + m.group(0) + " width=\"150\" height=\"100\">";
            }
        }
        return "";
    }

    public static void main(String[] args) {
        String str = "<img src='ringklad' />";
        String imgStr = RegexUtil.getImgStr(str);
        System.out.println(imgStr);
    }

    /**
     * 移除回答中的img图片
     *
     * @param content
     * @return
     */
    public static String removeHtmlImg(String content) {

        //  String regex="<img\\s*([\\w]*=(\"|\')([^\"\']*)(\"|\')\\s*)*/>";//这样更简单
        // String regex="<img\\s*src=(\"|\')([^\"\']+)(\"|\')\\s*([\\w]+=(\"|\')([^\"\']*)(\"|\')\\s*)*/>";
        Pattern p = Pattern.compile("<img\\s*src=(\"|\')([^\"\']+)(\"|\')\\s*([\\w]+=(\"|\')([^\"\']*)(\"|\')\\s*)*/>");
        Matcher m = p.matcher(content);
        //        上面是单纯图片的，下面处理比较全面了。

        String regex = "<(img|a|p|b|div|br)\\s*([\\w]*=(\"|\')([^\"\'<]*)(\"|\')\\s*)*(/>|>)";
        content = content.replaceAll(regex, "");
        String regex2 = "<span\\s*([\\w]*=(\"|\')(([^\"\'/>><']*)(\"|\'))*\\s*)*(/>|>)";
        content = content.replaceAll(regex2, "");
        content = content.replaceAll("<(/a|b|/b|p|/p|/span|/div)>", "");
        content = content.replaceAll("\r|\n|\t|&nbsp;", "");
        String substring = null;
        if (content.length() > 100) {
            content = content.substring(0, 100);
        }

        return "<p>" + content + "</p>";
    }
}
